View Javadoc
1 /*
2 * Created by IntelliJ IDEA.
3 * User: birchfield
4 * Date: Aug 18, 2002
5 * Time: 4:55:54 PM
6 * To change template for new class use
7 * Code Style | Class Templates options (Tools | IDE Options).
8 */
9 package net.plugin.sql.util;
10
11 import net.plugin.sql.listeners.QueryListener;
12
13 import java.util.*;
14
15 public class QueryManager implements QueryListener {
16
17 public static QueryManager instance = null;
18
19 private List queries = null;
20 private Collection listeners = null;
21
22 private QueryManager() {
23 queries = new ArrayList();
24 listeners = new ArrayList();
25 }
26
27 public static QueryManager getInstance() {
28 if (instance == null) {
29 instance = new QueryManager();
30 }
31 return instance;
32 }
33
34 public synchronized void addQuery(String query) {
35 if (queries.contains(query))
36 return;
37 //ifwe are at 50, pop the first one off
38 if (queries.size() == 50) {
39 queries.remove(0);
40 }
41 //add to the end. We will loop backwards to build the list
42 queries.add(0, query);
43 notifyListeners(query);
44 }
45
46 public List getQueries() {
47 List copy = new ArrayList(queries);
48 return copy;
49 }
50
51
52 private void notifyListeners(String query) {
53 for (Iterator iterator = listeners.iterator(); iterator.hasNext();) {
54 QueryListener queryListener = (QueryListener) iterator.next();
55 queryListener.queryPerformed(query);
56 }
57 }
58
59 public void queryPerformed(String query) {
60 addQuery(query);
61 }
62
63 public void removeQueryListener(QueryListener listener) {
64 listeners.remove(listener);
65 }
66 public void addQueryListener(QueryListener listener) {
67 listeners.add(listener);
68 }
69
70 }
This page was automatically generated by Maven